Static Files সার্ভ করা

Computer Programming - নোড জেএস (Node.js) - HTTP Server তৈরি করা (Creating an HTTP Server)
210

Static files হল এমন ফাইল, যেগুলি সার্ভার থেকে সরাসরি ক্লায়েন্ট (ব্রাউজার) এ পাঠানো হয়, এবং এগুলির কন্টেন্ট সাধারণত পরিবর্তন হয় না। উদাহরণস্বরূপ, HTML, CSS, JavaScript, ইমেজ ফাইল (JPEG, PNG), পিডিএফ, এবং অন্যান্য মিডিয়া ফাইলগুলি স্ট্যাটিক ফাইল হিসেবে পরিচিত।

Node.js এ static files সার্ভ করার জন্য আপনি সাধারণত express ফ্রেমওয়ার্ক ব্যবহার করেন। Express এর express.static() মডিউলটি স্ট্যাটিক ফাইল সার্ভ করার জন্য খুবই সুবিধাজনক। এখানে, আমরা Express ব্যবহার করে স্ট্যাটিক ফাইল সার্ভ করার পদ্ধতি দেখব।


১. Express এবং Static Files সার্ভ করা

Step 1: Express ইনস্টল করা

প্রথমে, যদি আপনি Express ফ্রেমওয়ার্ক ব্যবহার করতে চান, তবে আপনাকে express প্যাকেজটি ইনস্টল করতে হবে। এটি npm ব্যবহার করে ইনস্টল করা যাবে।

npm install express

Step 2: Static Files এর জন্য ফোল্ডার তৈরি করা

আপনার প্রজেক্টের মধ্যে একটি public নামক ফোল্ডার তৈরি করুন, যেখানে আপনি আপনার স্ট্যাটিক ফাইলগুলি (যেমন CSS, JavaScript, ইমেজ) রাখবেন।

/project
    /public
        /images
            logo.png
        /css
            style.css
        /js
            script.js
    app.js

Step 3: Express অ্যাপ তৈরি করা

এখন, Express অ্যাপ তৈরি করে express.static() ফাংশন ব্যবহার করে স্ট্যাটিক ফাইলগুলি সার্ভ করা যাবে।

// app.js ফাইলে Express ব্যবহার
const express = require('express');
const path = require('path');

const app = express();

// Static files সার্ভ করতে public ফোল্ডারটি ব্যবহার করা হচ্ছে
app.use(express.static(path.join(__dirname, 'public')));

// একটি রুট তৈরি করা
app.get('/', (req, res) => {
    res.send('<h1>Welcome to Static File Server!</h1>');
});

// সার্ভার চালু করা
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
    console.log(`Server is running on port ${PORT}`);
});

এখানে, express.static() ফাংশনটি public ফোল্ডারটিকে স্ট্যাটিক ফাইল সার্ভ করার জন্য সার্ভারে সংযুক্ত করেছে। এর মাধ্যমে আপনি ফোল্ডারের ভিতরে থাকা যেকোনো ফাইল ক্লায়েন্টে সরাসরি এক্সেস করতে পারবেন।

Step 4: ব্রাউজারে ফাইল অ্যাক্সেস করা

এখন আপনি আপনার ব্রাউজারে গিয়ে http://localhost:3000 URL এ গিয়ে ওয়েব পেজ দেখতে পাবেন। CSS, JavaScript বা ইমেজ ফাইলগুলি আপনার স্ট্যাটিক ফোল্ডার থেকে সরাসরি সার্ভ হবে।

যেমন:

  • আপনার CSS ফাইলটি http://localhost:3000/css/style.css এ পাওয়া যাবে।
  • আপনার JavaScript ফাইলটি http://localhost:3000/js/script.js এ পাওয়া যাবে।
  • আপনার ইমেজ ফাইলটি http://localhost:3000/images/logo.png এ পাওয়া যাবে।

২. Multiple Static Directories

আপনি যদি একাধিক স্ট্যাটিক ডিরেক্টরি সার্ভ করতে চান, তাহলে express.static() এর মাধ্যমে একাধিক পাথ অ্যাড করতে পারেন।

app.use(express.static(path.join(__dirname, 'public')));
app.use(express.static(path.join(__dirname, 'assets')));

এখানে, আপনার public এবং assets ফোল্ডার থেকে স্ট্যাটিক ফাইল সার্ভ হবে।


৩. Static Files সার্ভ করার অন্যান্য সুবিধা

  • Caching: স্ট্যাটিক ফাইল সার্ভ করার সময় আপনি ক্যাশিং হেডারও ব্যবহার করতে পারেন, যাতে ফাইলগুলি ক্লায়েন্টে ক্যাশ হয় এবং সার্ভারে অতিরিক্ত লোড কমে।
  • Content-Type সেটিং: Express স্বয়ংক্রিয়ভাবে স্ট্যাটিক ফাইলগুলির জন্য সঠিক Content-Type হেডার সেট করে (যেমন CSS, JS, ইমেজ, ইত্যাদি)।
  • Path Rewriting: আপনি স্ট্যাটিক ফাইল সার্ভ করার জন্য পাথ রাইটিং কনফিগার করতে পারেন।
// Static ফাইল সার্ভ করার জন্য কাস্টম পাথ
app.use('/static', express.static(path.join(__dirname, 'public')));

এখানে, আপনি /static পাথ ব্যবহার করে আপনার স্ট্যাটিক ফাইল অ্যাক্সেস করতে পারবেন, যেমন http://localhost:3000/static/css/style.css


সারাংশ

  • Express ব্যবহার করে আপনি সহজেই static files সার্ভ করতে পারেন।
  • express.static() মডিউলটি স্ট্যাটিক ফাইল সার্ভ করার জন্য ব্যবহৃত হয় এবং এটি খুবই কার্যকরী এবং সহজ।
  • আপনি multiple static directories একসাথে সার্ভ করতে পারেন এবং ফাইলগুলিকে ক্লায়েন্টে সরাসরি অ্যাক্সেস করতে পারেন।
  • স্ট্যাটিক ফাইলগুলির জন্য ক্যাশিং, কন্টেন্ট টাইপ সেটিং, এবং কাস্টম পাথ ব্যবহার করে আরও কার্যকরী ফাইল সার্ভিং করতে পারবেন।

এভাবে আপনি আপনার Node.js অ্যাপে স্ট্যাটিক ফাইলগুলি সার্ভ করে ওয়েব অ্যাপ্লিকেশনের পারফরম্যান্স ও ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে পারবেন।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...